package com.cn.wanxi.util;

public class ReadMe {
    /**
     * 2022-8-18
     * 前端页面赋值
     * 1.创建项目，将第一阶段的代码复制到web目录下
     * 2.页面加载完成，查询后台的数据：$(function (){}),
     *      注意：如果有多个页面组成的，那么里面的方法名或者属性名不要一样
     * 3.得到不同数据后，应该写不同的方法，
     * ---------------------
     * 后台和第四阶段差不多，
     * servlet  六大步骤
     * 最终将所有的对象赋值给一个大的容器，然后返回给前端
     *      注意：Java普通代码里面不允许出现魔法值：固定的常量
     *      那么就需要将常量单独放入一个类里面
     */
    /**
     * 2022-8-19
     * 详细页面跳转
     * 1.添加一个onclick事件：注意，以后你们的方法里面最好不要传递对象，最好全是id,或者一个字符串
     * 2.在详细页面里面根据id查询出三条数据，根据不同的情况进行赋值（注意：一定是先加载菜系，然后才能去查询产品信息）
     * 3.点击详细页面的上一条和下一条可以进行查询，直接调用function gotoProdutPage(id)
     * 4.迪纳基详细页面的菜系进入产品页面，根据传递过去的菜系id，查询出当前菜系所有的数据
     * 5.点击菜系修改背景颜色
     */
    /**
     * 2022-8-24 redis基础
     * 内存：不能保存数据
     * 数据库：可以永久保存
     * 关系型数据包括哪些？
     * 非关系型数据库包括哪些？
     * 使用方法：理解为mysql？
     * 1.下载安装软件
     * 2.配置环境变量（可选）
     * 3.下载驱动包（jar包）
     * 4.链接数据库JDBC(桌面软件：workbench)
     * -----------------------------
     * redis也应该写一个服务到服务程序里面，作为作业自己做？
     * --------------------------------------------------
     * 怎么讲redis应用到餐饮项目里面来？
     * 假定出现秒杀一盘扣肉1分钱，全国有十万人同时抢购
     *  思路？
     * 1.大量数据同时访问后台，如果全部访问数据库，则数据库直接驾崩
     * 2.所以，不能让用户直接访问数据库，
     * 3.如果第一个人访问了数据库，说明可以得到数据库里面的数据
     * 4.后面的人可以直接访问第一个人得到的数据
     * 5.那么第一个人访问后，应该把数据放在哪里？（全局变量里面）
     * 6.不能放在全局变量，那又应该放入哪里呢？
     *      思考？能不能放入session，req，application呢？
     *      能不能让这个数据一致存在？session数据共享，
     *      所以，这里就需要将数据保存到一个地方，无论服务是否启动，是否重启，都应该能够拿到数据
     *      所以，redis数据库就起作用
     *      所以，将临时数据怎么放入redis
     * Object data=null;
     * Temp datatemp=null;
     * boolean isFirst=false;//是否第一个人
     * if(isFirst){
     *   data=mysql-data;//数据应该来自于数据库
     *   datatemp=data;//全局变量其实是一个临时变量
     * }else{
     *  data=datatemp;
     * }
     * return data;//这里的数据就应该返回给前端
     * --------------------------------
     * redis能不能直接存对象？
     * 暂时不能，后面在springboot里面会教大家封装，可以存任何数据
     * ---------------------------------
     * 如果用户在后台管理页面修改了公司信息，需要删除logo关键字，
     *  int count = companyDao.update(companyModel);
     *         if (count > 0) {
     *             Jedis jedis = new Jedis();
     *             jedis.del("logo");
     *         }
     *  return ResultModel.getResult(count);
     *  ------------------------------------------------------
     *  redis  如果是String ，则第二次得到的数据会覆盖第一次
     *  如果是list，第二次则会直接添加到第一次集合的后面
     *
     */
    /**
     * 2022-8-25 多线程
     * 1.并行和并发
     * 2.线程的实现方式
     * 3.线程的命名
     * 4.线程的优先级
     * 5.线程优先级的特性：三大特点：规律性，无规则性，继承性
     * 线程资源共享，那么必定要用到runnable
     * 6.线程休眠  Thread.sleep(1000)
     * 7.线程同步  自动锁
     *    1)锁方法
     *    2）锁代码
     *            synchronized ("A")
     *             synchronized (this)
     *             synchronized (object)
     *             synchronized (MyPhone.class)
     *  同步锁，名字为同步，则表示单线程(就体现不了多线程的优势)
     *  只不过，单线程比较安全
     * 7.锁  手动锁
     * 8.死锁
     * 9.线程加入join
     * 10.生产者和消费者模型
     * 11.线程的生命周期
     *
     */
}
